/**
 * 扩展easyui的validator插件rules，支持更多类型验证
 */
$.extend($.fn.validatebox.defaults.rules, {
	minLength : {
		validator : function(value, param) {
			return value.length >= param[0];
		},
		message : 'Please enter at least {0} characters.'
	},
	maxLength : {
		validator : function(value, param) {
			return value.length <= param[0];
		},
		message : '输入内容长度不能超过{0}个字符'
	},
	length : { // 长度   
		validator : function(value, param) {
			var len = $.trim(value).length;
			return len >= param[0] && len <= param[1];
		},
		message : "输入内容长度必须介于{0}和{1}之间"
	},
	host : {// 验证源主机
		validator : function(value) {
		var reg = /^[a-zA-Z0-9_\-@$\.]{0,50}$/ ;
		return reg.test(value);
		},
		message : '源主机格式不正确!'
	},
	ip : {// 验证IP地址   
		validator : function(value) {
			 var reg = /^((1?\d?\d|(2([0-4]\d|5[0-5])))\.){3}(1?\d?\d|(2([0-4]\d|5[0-5])))$/ ;   
			 return reg.test(value); 
		},
		message : 'IP地址格式不正确，正确格式如127.0.0.1'
	},
	email : {// 验证email地址   
		validator : function(value) {
			 var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,})$/;   
			 return reg.test(value); 
		},
		message : '请输入有效的电子邮件地址，如example@szlanyou.com'
	},
	smtp :{//验证域名url
		validator : function(value){
			var reg =  /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/ ;
			return reg.test(value);
		},
		message : 'smtp地址格式不正确'
	},
	account : {//验证账号
		validator : function(value){
			return /^[a-zA-Z][a-zA-Z0-9_-]{5,15}$/i.test(value);
		},
		message : '账号格式不正确'
	},
	username : {// 验证用户名   
		validator : function(value) {
			return /^[a-zA-Z][a-zA-Z0-9_]{0,15}$/i.test(value);
		},
		message : '用户名不合法（字母开头，允许1-16字节，允许字母数字下划线）'
	},
	unnormal : {// 验证是否包含空格和非法字符   
		validator : function(value) {
			var cc = /[^\u4E00-\u9FA5A-Za-z0-9-_]/g;
			if(cc.test(value)){
				return false;
			}else{
				return true;
			}
		},
		message : '输入值不能为空和包含其他非法字符'
	},
	port : {
		validator : function(value, param) {
			var parten = /^(\d)+$/g;
			if (parten.test(value) && parseInt(value) <= 65535&& parseInt(value) >= 0) {
				return true;
			} else {
				return false;
			}
		},
		message : '请输入正确的端口号（0~65535）'
	},
	number :  {//纯数字
		validator : function(value) {
			 var reg = /^[0-9]*$/;   
			 return reg.test(value) && value > 0; 
		},
		message : '请输入正确的整数'
	},
	dateValid : {//验证开始时间小于结束时间
		validator: function(value, param) {
			var startTime = $(param[0]).datetimebox('getValue');
			var endTime = $(param[1]).datetimebox('getValue');
			var startTimeTar = param[0].replace(/#/,"");
			var d1 = Date.parse(new Date(startTime.replace(/-/,"/")));//$.fn.datebox.defaults.parser(startTime);
			var d2 = Date.parse(new Date(endTime.replace(/-/,"/")));//$.fn.datebox.defaults.parser(value);

			/*if(startTime === '')
			{
				$(param[1]).datetimebox('setValue','');
				setTimeout(function()
				{
					$(param[1]).siblings(".textbox").children(".textbox-value").val('');
				},500);
				$.messager.alert('警告', '开始时间不能为空', 'warning');				
				return true;
			}else */
			if((startTime !== '' && endTime === '') || (startTime === '' && endTime !== ''))
			{	
				varify = true;
				return true;
			}
			
			if(startTime !== '' && endTime !== '')
			{
				varify = d2 > d1;
				if (!varify) {
					$.messager.alert('警告', '<p>结束时间要大于开始时间</p>', 'warning');
					setTimeout(function()
					{
						$(param[0]).combo('setValue', '').combo('setText', ''); 
						$(param[1]).combo('setValue', '').combo('setText', ''); 
					},100);
				}
				
				return true;
			}

		},
		message: '结束时间要大于开始时间！'
	},
	equalTo: {
		validator: function(value,param){
			return value == $(param[0]).val();
		},
		message: '确认密码与密码不一致'
    },
	phone: {
		validator: function(value){
			return /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i.test(value) || 
					/^(13|15|18)\d{9}$/i.test(value);
		},
		message: '请输入正确格式的电话号码，如020-88888888,15888888888'
    },
	comboxValidate:{         
		validator:function(value, param, missingMessage){
			if($('#'+param).combobox('getValue')!='' && $('#'+param).combobox('getValue')!=null)
			{                 
				return true;             
			}             
			return false;         
		},        
		message:"{1}"     
	},
	interfaceName:{
		validator : function(value) {
			return /^[a-zA-Z][a-zA-Z0-9_]{0,50}$/i.test(value);
		},
		message : '接口名称不合法（字母开头，允许1-50字节，允许字母数字下划线）'
	},
	overTime:{
		validator : function(value) {
			return /^([1-9]\d{0,10}|0)(\.\d{1,3})?$/i.test(value);
		},
		message : '超时设置数据格式不正确，请正确填写最多三位小数的数字！'
	},
	code:{
		validator : function(value) {
			return /^[0-9a-zA-Z_]*$/g.test(value);
		},
		message : '编码格式不正确，只允许字母、数字、下划线！'
	},
	
});